home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / SLIP / Tone / Hayes_compatible_v1.6 < prev   
Text File  |  1994-10-19  |  6KB  |  289 lines

  1. #
  2. #  really generic hayes script - you need to enter phone number, 
  3. #  username, etc 
  4. #
  5. #  You should preset the  parameter using
  6. #  the "Parameters..." item under the "Script" popup 
  7. #  menu after selecting this script:
  8. #
  9. #         $DisconnectString 
  10. #         $phone
  11. #         $user
  12. #         $password
  13. #         $PromptForPhoneNumber       Must be YES to work (not yes)
  14. #         $PromptForUserName          Must be YES to work (not yes)
  15. #         $PromptForPassword          Must be YES to work (not yes)
  16. #
  17.  
  18. #   Let the user know we're starting up. Set up a global
  19. #   abort action.
  20.  
  21. on restart goto restart
  22. on abort goto abort
  23. label startup
  24.  
  25. # We do this so we can init modem.
  26. setcount 0 0
  27. message "Initializing modem.\n"
  28. label modeminit
  29. flush
  30. send "$INITMODEM\r"
  31. ifcountgt 0 3 goto cantinitmodem
  32. {
  33.     ifmatch OK break
  34.     iftime 3 goto modeminit
  35. }
  36.  
  37. if "$PromptForPhoneNumber" ne "YES"  goto nextone
  38.  
  39. # Ask for the phone number.
  40. message " \n\n"
  41. message "\bPlease enter the phone number:"
  42. ask phone
  43. message " \n"
  44. message "Thank you.\n"
  45.  
  46. label nextone
  47. if "$PromptForUserName" ne "YES"  goto nexttwo
  48.  
  49. # Ask for the username.
  50. message " \n\n"
  51. message "\b Please enter your username:"
  52. ask user
  53. message " \n"
  54. message "Thank you.\n"
  55.  
  56. label nexttwo
  57. if "$PromptForPassword" ne "YES"  goto nextthree
  58.  
  59. # Ask for a password to log into the SLIP server.
  60. message " \n\n"
  61. message "Contacting SLIP server as $user.\n"
  62. message "\b Please enter your password:"
  63. askp password
  64. message " \n"
  65. message "Thank you.\n"
  66.  
  67. label nextthree
  68. #    Dial the phone and wait for the terminal server
  69. #    to send its login banner. Some areas support 
  70. #    using *70 as a dialing prefix to suppress call-
  71. #    waiting tones which will probably cause your modem
  72. #    to lose the connection. Some terminal servers
  73. #    may require you to autobaud before they will respond.
  74. #    Allow enough time for the modem handshake to complete.
  75.  
  76. message "Dialing $phone..."
  77. flush
  78. on abort goto hangupabort  # We're about to go off hook, so use different abort handler.
  79. send "ATDT $phone\r"
  80. {
  81.     ifmatch "CONNECT" break
  82.     ifmatch "NO DIALTONE" goto nodialtone
  83.     ifmatch "BUSY" goto phonebusy
  84.     ifmatch "NO CARRIER" goto nocarrier
  85.     iftime 1:15 goto dialtimeout
  86. }
  87.  
  88. message "Waking server..."
  89. setcount 0 0
  90. label wakeserver
  91. flush
  92. ifcountgt 0 10 goto cantwakeserver
  93. delay 5
  94. send "\r"
  95. send "\r"
  96. {
  97.     ifmatch "Username:" goto startlogin
  98.     iftime 20 goto cantwakeserver
  99. }
  100.  
  101. #    Log into the terminal server. Try three times to
  102. #    send the username. Use counter number 1 to count the
  103. #    number of login attempts.
  104.  
  105. label startlogin
  106. setcount 1 0
  107. label login
  108. ifcountgt 1 3 goto cantlogin
  109. message "Logging in as $user..."
  110. setcount 0 0
  111. label user
  112. flush
  113. ifcountgt 0 3 goto baduser
  114. send "$user\r"
  115. {
  116.     ifmatch "Password:" break
  117.     ifmatch "Username:" goto user
  118.     iftime 10 goto baduser
  119. }
  120.  
  121. #    Send your password and wait for the ">" prompt.
  122. #    If we see the "Username:" prompt again, then
  123. #    we didn't get logged in so try again.
  124.  
  125. message "Sending password...\n"
  126. flush
  127. send "$password\r"
  128. {
  129.     ifmatch ">" goto setslip
  130.     ifmatch "Access denied" goto accessdenied
  131.     iftime 45 goto cantlogin
  132. }
  133. goto setslip    # Shouldn't get here, but just in case.
  134.  
  135. #    If the login attempt fails, we land here.  We can
  136. #    take whatever action is necessary to get another
  137. #    login prompt.  In the case of Cisco terminal servers,
  138. #    no other action is necessary, so we just look for
  139. #    "Username:" immediately.  Some systems may require
  140. #    a \n to get their attention again.  Most recovery
  141. #    actions will probably go outside the loop.
  142.  
  143. label accessdenied
  144. {
  145.     ifmatch "Username:" goto login
  146.     ifmatch "NO CARRIER" goto cantlogin
  147.     iftime 10 goto cantlogin
  148. }
  149. goto cantlogin    # Shouldn't get here, but just in case
  150.  
  151. #    Put the terminal line into SLIP mode.
  152.  
  153. label setslip
  154. message "Setting terminal line for SLIP operation..."
  155. flush
  156. send "term down\r"
  157. {
  158.     ifmatch ">" break
  159.     iftime 10 goto cantsetterm
  160. }
  161.  
  162. #     Enable SLIP.  The SLIP server tells us our MTU in bytes,
  163. #    so look for the word "system".
  164.  
  165. message "Enabling SLIP on server..."
  166. flush
  167. send "slip default\r"
  168. {
  169.   ifmatch "system" break
  170.     iftime 10 goto cantstartslip
  171. }
  172. ipfind IPADDRESS 
  173. set IPGWADDRESS 134.84.101.254
  174. set IPNETMASK 255.255.255.0
  175.  
  176. #    All done.  Send message to alert the user,
  177. #    flush the junk out of the receive buffer,
  178. #    and return success.
  179.  
  180. message "Script complete"
  181. flush
  182. return 1
  183.  
  184. #    Error handlers.
  185.  
  186. label abort
  187. beep
  188. message "\bOperation cancelled."
  189. goto aborted
  190.  
  191. label hangupabort
  192. beep
  193. message "\bOperation cancelled."
  194. goto hangup
  195.  
  196. label cantfindmodem
  197. beep
  198. message "\bThe modem didn't respond to attention"
  199. message "\bsignal.  Check the modem and cable."
  200. goto aborted
  201.  
  202. label cantinitmodem
  203. beep
  204. message "\bThe modem didn't respond to initialization."
  205. message "\bCheck the modem and cable."
  206. goto aborted
  207.  
  208. label nodialtone
  209. beep
  210. message "The modem could not detect a dialtone."
  211. message "Check the phone line."
  212. goto aborted
  213.  
  214. label phonebusy
  215. beep
  216. message "The number $phone is busy."
  217. goto aborted
  218.  
  219. label nocarrier
  220. beep
  221. message "The modem could not establish a connection."
  222. message "Is $phone the right number?"
  223. goto aborted
  224.  
  225. label badinitstring
  226. message "This is the wrong script for the modem"
  227. goto hangup
  228.  
  229. label dialtimeout
  230. message "The modem or SLIP server isn't responding."
  231. message "Try again."
  232. goto aborted
  233.  
  234. label cantwakeserver
  235. message "The SLIP server isn't responding."
  236. message "Try again."
  237. goto hangup
  238.  
  239. label baduser
  240. beep
  241. message "The SLIP server won't accept a username."
  242. message "Try again."
  243. goto hangup
  244.  
  245. label cantlogin
  246. beep
  247. message "Login to SLIP server failed, check username"
  248. message "and password."
  249. goto hangup
  250.  
  251. label cantsetterm
  252. beep
  253. message "Can't set terminal line for SLIP operation."
  254. goto hangup
  255.  
  256. label cantstartslip
  257. beep
  258. message "Can't put server into SLIP mode."
  259. goto hangup
  260.  
  261. #    General back-end for bailing out.  Make sure we've hung up the phone.
  262.  
  263. label hangup
  264. send "\d+++\d\d\dATH\r"
  265. delay 2
  266. send $DisconnectString\r
  267.  
  268. label aborted
  269. message "\bScript aborted."
  270. ask junk            # This activates the OK button.
  271. flush
  272. return 0
  273.  
  274. # Stuff to do when "Disconnect" button is pressed.
  275.  
  276. label disconnect
  277. send "\d+++\d\d\dATH\r"
  278. delay 2
  279. send $DisconnectString\r
  280. flush
  281. return 1
  282.  
  283. # Stuff to do when "Restart" button is pressed.
  284.  
  285. label restart
  286. do disconnect
  287. message "\bScript restarted."
  288. goto startup
  289.